home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / LocaleObjects.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  7KB  |  204 lines

  1. /*
  2.      File:        LocaleObjects.h
  3.  
  4.      Contains:    LocaleObject Manager interfaces
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __LOCALEOBJECTS__
  19. #define __LOCALEOBJECTS__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __TEXTOBJECTS__
  25. #include <TextObjects.h>
  26. #endif
  27. #ifndef __TEXTCOMMON__
  28. #include <TextCommon.h>
  29. #endif
  30. #ifndef __FILEMANAGERTYPES__
  31. #include <FileManagerTypes.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT_SUPPORTED
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #if FOR_SYSTEM8_PREEMPTIVE
  47. /* Locale errors*/
  48. typedef OSStatus LocaleErrors;
  49. typedef UInt16 LocaleIterateOp;
  50.  
  51. enum {
  52.     kLocaleForwardIterate        = 0,
  53.     kLocaleBackwardIterate        = 1
  54. };
  55.  
  56. typedef SInt16 LocaleNameIdentifier;
  57.  
  58. enum {
  59.     kLocaleObjectKeyNameIndex    = 0,
  60.     kLocaleObjectUserName        = 1,
  61.     kLocaleObjectCopyrightString = 2,
  62.     kLocaleObjectManufacturerString = 3,
  63.     kLocaleObjectFunctionDescription = 4,
  64.     kLocaleObjectVersionString    = 5
  65. };
  66.  
  67. typedef LocaleNameIdentifier LocaleDefaultValue;
  68.  
  69. enum {
  70.     kLocaleLanguageID            = 0x000A,                        /* language id */
  71.     kLocaleLanguageLocalizedName = 0x1001,                        /* localized name of language */
  72.     kLocaleLanguageEnglishName    = 0x000B,                        /* English name of language */
  73.     kLocaleAbbreviatedLanguageName = 0x000C,                    /* abbreviated language name */
  74.     kLocaleLanguageNativeName    = 0x000D,                        /* native name of language */
  75.     kLocaleCountryCode            = 0x000E,                        /* country code */
  76.     kLocaleLocalizedCountryName    = 0x000F,                        /* localized name of country */
  77.     kLocaleEnglishCountryName    = 0x1002,                        /* English name of country */
  78.     kLocaleAbbreviatedCountryName = 0x001F,                        /* abbreviated country name */
  79.     kLocaleNativeCountryName    = 0x002F,                        /* native name of country */
  80.     kLocaleDefaultLanguageID    = 0x003F,                        /* default language id */
  81.     kLocaleDefaultCountryCode    = 0x004F                        /* default country code */
  82. };
  83.  
  84. typedef UInt16 LocaleObjectContext;
  85.  
  86. enum {
  87.     kLocaleObjectIsGlobal        = 0,
  88.     kLocaleObjectIsLocal        = 1
  89. };
  90.  
  91. typedef OSType LocaleDataTag;
  92. typedef UInt32 LocaleObjectTagIndex;
  93. typedef struct OpaqueLocaleRef* LocaleRef;
  94. typedef struct OpaqueLocaleIteratorReference* LocaleIteratorReference;
  95. typedef struct OpaqueLocaleObjectRef* LocaleObjectRef;
  96. struct NameValuePair {
  97.     StringPtr                         name;
  98.     ByteCount                         valueLength;
  99.     void *                            value;
  100. };
  101. typedef struct NameValuePair NameValuePair;
  102.  
  103. typedef NameValuePair *NameValuePairPtr;
  104. struct NameTableEntry {
  105.     LocaleNameIdentifier             nameID;
  106.     UInt16                             reserved;
  107.     TextObject                         name;
  108. };
  109. typedef struct NameTableEntry NameTableEntry;
  110.  
  111. #define kExecutableCfragName    "\pexecutablecfrag"
  112. #define kSOMClassName            "\psomclass"
  113. #define kUserVisibleName         "\puservisiblename"
  114. #define kScriptName            "\pscript"
  115. #define kLanguageName             "\planguage"
  116. #define kRegionName            "\pregion"
  117. #define kResIDName                "\presid"
  118. #define kEncodingName            "\pencoding"
  119. #define kTextServiceTypeName    "\ptextservice"
  120. #define kInputMethodTypeName    "\pkeyboardinputmethod"
  121. #define kLocaleIdentifierName    "\plocaleidentifier"
  122. extern LocaleRef GetCurrentProcessLocaleRef(void );
  123.  
  124. extern OSStatus GetLocaleReference(LocaleIdentifier identifier, LocaleRef *locale);
  125.  
  126. extern OSStatus LocaleIteratorCreate(LocaleRef locale, ConstStr255Param keyName, ItemCount countAttributes, const NameValuePair *attributes, LocaleIteratorReference *localeIteratorRef);
  127.  
  128. extern OSStatus LocaleIteratorDispose(LocaleIteratorReference localeIteratorRef);
  129.  
  130. /*
  131.  The void * returned as the dataPtr and the LocaleObjectRef * both
  132.  point into read-only memory.  Use const to invoke the compiler's help
  133.  in preventing write-accesses to that data.
  134. */
  135. extern OSStatus LocaleIterate(LocaleIteratorReference localeIteratorRef, LocaleIterateOp op, const void **dataPtr, ByteCount *dataSize, LocaleObjectRef *objectRef);
  136.  
  137. extern OSStatus GetLocaleObjectName(LocaleObjectRef objectRef, LocaleNameIdentifier nameID, TextEncoding encoding, LocaleIdentifier languageRegion, ByteCount *nameSize, TextObject name);
  138.  
  139. extern OSStatus GetLocaleObjectKeyName(LocaleObjectRef objectRef, Str255 keyName);
  140.  
  141. extern OSStatus GetLocaleObjectData(LocaleObjectRef objectRef, const void **localeObjectData, ByteCount *dataSize);
  142.  
  143. extern OSStatus GetLocaleObjectAttributes(LocaleObjectRef objectRef, const NameValuePair **attributes, ItemCount *countPairs);
  144.  
  145. extern OSStatus GetLocaleObjectFSObjectRef(LocaleObjectRef localeObjRef, FSObjectRef *fileRef);
  146.  
  147. extern OSStatus GetLocaleObjectLocale(LocaleObjectRef objectRef, LocaleRef *locale, LocaleIdentifier *localeID);
  148.  
  149. extern OSStatus GetLocaleObjectMemoryContext(LocaleObjectRef objectRef, LocaleObjectContext *context);
  150.  
  151. extern OSStatus SetLocaleIterator(LocaleRef locale, ConstStr255Param keyName, ItemCount countAttributes, const NameValuePair *attributes, LocaleIteratorReference *localeIteratorRef);
  152.  
  153. extern OSStatus SearchOneLocaleObject(LocaleRef locale, ConstStr255Param keyName, ItemCount countAttributes, const NameValuePair *attributes, const void **localeObjectData, ByteCount *dataSize, const LocaleObjectRef *objectRef);
  154.  
  155. extern OSStatus AddLocaleObject(LocaleRef locale, void *localeObjectData, ByteCount objectSize, ConstStr255Param keyName, ItemCount countUserNames, const NameTableEntry *userNames, ItemCount countAttributes, const NameValuePair *attributes, LocaleObjectRef *objectRef);
  156.  
  157. extern OSStatus RemoveLocaleObject(LocaleObjectRef objectRef);
  158.  
  159. extern ItemCount CountLocaleObjectAssociatedDataTags(LocaleObjectRef objectRef);
  160.  
  161. extern OSStatus GetIndexedAssociatedData(LocaleObjectRef objectRef, LocaleObjectTagIndex tagIndex, LocaleDataTag *tag, const void **associatedDataPtr, ByteCount *size);
  162.  
  163. extern OSStatus GetLocaleObjectAssociatedData(LocaleObjectRef objectRef, LocaleDataTag tag, const void **associatedDataPtr, ByteCount *size);
  164.  
  165. extern ItemCount CountInstalledLocales(void );
  166.  
  167. extern OSStatus GetFirstLocale(LocaleRef *locale, LocaleIdentifier *localeID);
  168.  
  169. extern OSStatus GetNextLocale(LocaleRef *locale, LocaleIdentifier *localeID);
  170.  
  171. extern OSStatus SetCurrentProcessLocale(LocaleIdentifier localeID, LocaleRef *locale);
  172.  
  173. extern LocaleRef GetSystemDefaultLocale(void );
  174.  
  175. extern LocaleIdentifier GetSystemLocaleIdentifier(void );
  176.  
  177. extern LocaleIdentifier GetCurrentProcessLocaleIdentifier(void );
  178.  
  179. extern LocaleIdentifier GetLocaleRefLocaleIdentifier(LocaleRef locale);
  180.  
  181. extern OSStatus GetDefaultLocaleObject(LocaleRef locale, ConstStr255Param keyName, LocaleObjectRef *objectRef);
  182.  
  183. extern OSStatus SetDefaultLocaleObject(LocaleRef locale, LocaleObjectRef objectRef);
  184.  
  185. extern OSStatus GetLocaleInformation(LocaleRef locale, LocaleDefaultValue infoIndex, TextObject *infoText);
  186.  
  187. #endif
  188. /* FOR_SYSTEM8_PREEMPTIVE*/
  189.  
  190. #if PRAGMA_ALIGN_SUPPORTED
  191. #pragma options align=reset
  192. #endif
  193.  
  194. #if PRAGMA_IMPORT_SUPPORTED
  195. #pragma import off
  196. #endif
  197.  
  198. #ifdef __cplusplus
  199. }
  200. #endif
  201.  
  202. #endif /* __LOCALEOBJECTS__ */
  203.  
  204.